Modern software typically contains a vast collection of features, many of which go unused by most users, but are often included to permit a one-size-fits-all methodology commonly practiced in development and deployment efforts. Developers typically attempt to design each feature to minimize compatibility problems, minimize a reduction in performance caused by a respective feature, minimize user privacy concerns, and minimize user frustration.